package com.jf.nep.render;

/**
 * <p>A mesh is a prepared set of triangle primitives with an associated shader program.</p>
 * 
 * <p>Normally there is one mesh per predefined shape in the renderer. This corresponds to graphics data downloaded into the GPU.</p>
 * 
 * <p>Multiple instances of the mesh can be rendered by using one or more @MeshInstance</p> 
 * 
 */
public interface Mesh {
    /** Unique identifier of this mesh */
    String id();
    
    /** List of vertices for this mesh */
    Vertex[] getVertices();
    
    /** Set of indexes indexing the vertex data */
    byte[] getIndices();
    
    /** Identifier of shader technique used for this mesh */
    String getShader();
}
